1. Field of the Invention
The invention relates generally to data-processing systems and more specifically to disk drives utilized by such systems to store data on magnetic media, controllers utilized to control such disk drives, and buses connecting controllers and disk drives.
2. Description of Prior Art
A set of controllers, a set of disk drives, and the buses connecting them make up a complex system which must function rapidly and reliably and which must be easily diagnosed in case of failure. Problems in such systems in the prior art have involved allocation of functions between the disk drive and the controller, the design of the system so that one part can be modified without changing the rest, the provision of immediate access for one controller to a disk drive after another controller has finished using the disk drive, the provision of information about the status of a disk drive which a controller is currently not using to the controller, the diagnosis of failures in the system, the design of efficient and inexpensive apparatus for encoding data codes to produce disk codes and decoding disk codes to produce data codes, and the reduction of the effect of minor errors which occur while data is being read to or written from the disk.
Allocation of functions between the disk drive and the controller is difficult because each has information that the other requires to operate correctly. For example, the controller may maintain a map of the disk indicating what disk track sectors are available for use. Each disk track sector is specified in the map by means of a set of coordinates. The track sector itself contains a header which includes the coordinates. A transfer of data to or from a track sector should not take place unless the coordinates in the header are the same as those of the track sector to or from which the controller intended to transfer data. While the controller has the information required to check the header, it is the disk which needs to know whether the header is valid before it begins reading or writing data.
The design of disk drives so that one part can be changed without affecting the others is difficult because the disk drive is required to operate very rapidly. Hence, the parts of the disk drive must cooperate closely and each part is dependent on the others. Unless great care is taken in the design, a change to any part requires changes in all of the others. For example, a change in the disk codes used on the disk may require a complete redesign of the portion of the disk drive which encodes or decodes the disk codes and transfers data between the controller and the disk.
Where more than one controller may use a disk drive, it is important that a controller which is is waiting for another controller to finish using the disk drive begin using the disk drive immediately when the other controller ceases using it. If there is any interval between the time the first controller stops using the disk and the second controller starts using it, there will be a reduction of system efficiency, and more important, a possibility that the first controller will again gain use of the disk drive before the second controller determines that it is free and reserves it.
It is further important where a controller is sharing a set of disk drives with a group of controllers that the controller can determine the status of each disk drive in the set without currently having access to the disk drive. In the absence of such a capability, the controller cannot efficiently use the disk drives available to it.
In complicated apparatus such as disk drive and controller systems, diagnostics are difficult. There are many possible sources of error, and diagnosis must be able to distinguish among the possible sources. For example, when data is encoded and written to the disk, the presence of bad data on the disk may be the result of an error in the encoding operation or of an error in the system which writes the data to the disk. Further, the addition of diagnostic components adds to the overall complexity of the system, and if improperly done, may provide an additional source of error.
Encoding data to obtain disk codes and decoding disk codes to obtain data is one of the most important operations performed in a disk drive. Design of apparatus for performing these operations which is fast and low in cost is a matter of perennial difficulty. The difficulty of design is increased by the requirement that faults in the operation of the encoding and decoding apparatus be easily diagnosable.
A final problem of disk drives is the fact that the presence of electrical noise in the system can result in disk codes which are obviously illegal. The encoding and decoding apparatus must deal with these illegal codes which neither decreases the quality of data made available to the rest of the computer system nor reduces overall system efficiency.
Some of these problems in the design of controllers and disk drives of the prior art and others as well are remedied by the present invention.